//home和detail页面都需要监听图片加载完后重新刷新页面长度
import { debounce } from './utils'
import BackTop from 'components/content/backTop/BackTop'
import { POP, SELL, NEW } from './const'
import { BACK_TOP } from './const'
export const itemListenerMixin = {
  data () {
    return {
      itemImgListener: null
    }
  },
  mounted () {
    //1、监听商品图片加载完成  按之前的来，每次请求图片都要刷新30次，也就是太频繁了，影响性能
    //使用封装好的防抖函数，可以让刷新次数变少，提高性能
    const refresh = debounce(this.$refs.scroll.refresh, 50)

    //对监听事件进行保存
    this.itemImgListener = () => {
      // this.$refs.scroll && this.$refs.scroll.refresh();
      refresh()
    }
    this.$bus.$on('goodsItemLoad', this.itemImgListener)

    // console.log('我是混子');
  }
}

//导出回到顶部的功能
export const backTopMixin = {
  components: {
    BackTop
  },
  data () {
    return {
      isShowBackTop: false
    }
  },
  methods: {
    backClick () {
      this.$refs.scroll.scrollTo(0, 0, 300)
    },
    // 该方法要放在使用组件时监听滑动条的位置，在里面要使用这个方法，记得传递参数，
    //position记录当前滑动条所在的位置
    listenShowBackTop (position) {
      //3、判断backTop是否显示，滚动条的位置大于700时就出现返回顶部图标
      this.isShowBackTop = -position.y > BACK_TOP
    }
  }
}

export const tabControlMixin = {
  data: function () {
    return {
      currentType: POP
    }
  },
  methods: {
    tabClick (index) {
      switch (index) {
        case 0:
          this.currentType = POP
          break
        case 1:
          this.currentType = NEW
          break
        case 2:
          this.currentType = SELL
          break
      }
      console.log(this.currentType)
    }
  }
}
